package tree.binaryTree;

import tree.TreeNode;

/**
 * @author czt
 * @version 1.0
 * @since 2024/12/26
 *
 * 递归方式
 */
public class TreeTraversalRecursion {

    /**
     * 前序遍历
     * @param node 叶子节点
     */
    static void preOrder(TreeNode node) {
        if (node == null) return;
        System.out.print(node.val+"\t");
        preOrder(node.left); // 左孩子
        preOrder(node.right); // 右孩子
    }

    /**
     * 中序遍历
     * @param node 叶子节点
     */
    static void inOrder(TreeNode node) {
        if (node == null) return;
        inOrder(node.left);
        System.out.print(node.val+"\t");
        inOrder(node.right);
    }

    /**
     * 后序遍历
     * @param node 叶子节点
     */
    static void postOrder(TreeNode node) {
        if (node == null) return;
        postOrder(node.left);
        postOrder(node.right);
        System.out.print(node.val+"\t");
    }
}
